﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using Microsoft.Rtc.Collaboration.Samples.HTMLPresenceControls.Service.Common;

namespace Microsoft.Rtc.Collaboration.Samples.HTMLPresenceControls.Service
{
    /// <summary>
    /// An interface for a cache of presence information by contact sip uri
    /// </summary>
    public interface IPresenceCache
    {
        IAsyncResult BeginShutdown(AsyncCallback userCallback, object state);
        IAsyncResult BeginStartup(AsyncCallback userCallback, object state);
        void EndShutdown(IAsyncResult result);
        void EndStartup(IAsyncResult result);
        System.Collections.Generic.List<PresenceSubscription> GetPresence(System.Collections.Generic.List<string> sipUris);
        PresenceSubscription GetPresence(string sipUri);
        IPresenceProvider PresenceProvider { get; set; }
        TimeSpan StaleInterval { get; set; }
    }
}